From: Giovanni Campagna Date: Sat, 29 Oct 2011 12:35:09 +0000 (+0200) Subject: NetworkMenu: fix logic for updating wifi icon X-Git-Tag: archive/raspbian/50.5-1+rpi1~1^2~1013^2^2~7341 X-Git-Url: https://dgit.raspbian.org/%22http://www.example.com/cgi/%22/%22http:/www.example.com/cgi/%22?a=commitdiff_plain;h=d7d5da03012332672de8089368cfff7f1434f8af;p=gnome-shell.git NetworkMenu: fix logic for updating wifi icon Previously, we connected to notify::strength only if there was already a signal connected, and the AP changed (thus, by induction, we never connected). As a result, the icon became stale and different from that shown inside the menu (which is correctly updated). https://bugzilla.gnome.org/show_bug.cgi?id=650007 --- diff --git a/js/ui/status/network.js b/js/ui/status/network.js index 456b51fe4..aa9e2342a 100644 --- a/js/ui/status/network.js +++ b/js/ui/status/network.js @@ -2065,10 +2065,11 @@ NMApplet.prototype = { } this.setIcon('network-wireless-connected'); } else { - if (this._accessPointUpdateId && this._activeAccessPoint != ap) { - this._activeAccessPoint.disconnect(this._accessPointUpdateId); + if (this._activeAccessPoint != ap) { + if (this._accessPointUpdateId) + this._activeAccessPoint.disconnect(this._accessPointUpdateId); this._activeAccessPoint = ap; - this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(function() { + this._activeAccessPointUpdateId = ap.connect('notify::strength', Lang.bind(this, function() { this.setIcon('network-wireless-signal-' + signalToIcon(ap.strength)); })); } @@ -2095,8 +2096,9 @@ NMApplet.prototype = { break; } - if (this._mobileUpdateId && this._mobileUpdateDevice != dev) { - this._mobileUpdateDevice.disconnect(this._mobileUpdateId); + if (dev.mobileDevice != this._mobileUpdateDevice) { + if (this._mobileUpdateId) + this._mobileUpdateDevice.disconnect(this._mobileUpdateId); this._mobileUpdateDevice = dev.mobileDevice; this._mobileUpdateId = dev.mobileDevice.connect('notify::signal-quality', Lang.bind(this, function() { this.setIcon('network-cellular-signal-' + signalToIcon(dev.mobileDevice.signal_quality));